'use strict';
(function(){
  var baseImageUrl = 'http://static.winnovator.cn/scale/23/';

  var ratef = function(v){
    var tv = (((v +6)/(12)+0.1)*100).toFixed(1);
    if(tv > 100){
      return 100;
    }
    return tv;

  };
  function getRandomNum(Min,Max)
  {
    var Range = Max - Min;
    var Rand = Math.random();
    return(Min + Math.round(Rand * Range));
  }

  var userSelectedSerial = {};

  //获得试题的各个维度的得分
  function qDimResult(qId,qAnswerArr){

    var dimResult = [];
    _.each(qAnswerArr, function(oneAid){
      var one = _answerDims[oneAid];
      _.each(one, function(oneDim){
        dimResult[oneDim.name - 1] = oneDim.value;
      });
    });
    return dimResult;

  }
  window.roundDataUtil = {
    currentQuestion:function(){
      return currentQuestion;
    },
    getNext: function(answerId){ //根据已有的答题序列获得下一提
      if(answerId === null){//针对用户没有选择的时候
        answerId = currentQuestion.answers[0].id;
        //console.log("用户没有选择，默认为：" + answerId);
      }
      var oneAnswer = _answers[answerId];
      var nextItem = oneAnswer.next;
      var data = null;
      var questionIndex = -1;
      if(nextItem.type === 'q'){
        data = questions_map[nextItem.id];
        currentQuestion = data;
        //获得下一题目的索引值
        for(var i = 0 ; i < _questions.length ; i ++){
          var oneQuestoin = _questions[i];
          if(oneQuestoin.id == nextItem.id){
            questionIndex = i;
            break;
          }
        }
      }else{
        //答题结果
        //从特定的题型中解析该试题的维度


        //拿到用户的答题序列
        var dimResultArr = [];
        _.each(_.values(userSelectedSerial),function(oneArr){
          dimResultArr.push(qDimResult(null,oneArr));
        });
        var answerDimsList = [];//各个维度数组的总和
        for(var i = 0; i < 5; i++){
          var tempSum = 0;
          _.each(dimResultArr,function(oneDimResult){
            if(oneDimResult[i]){
              tempSum += oneDimResult[i];
            }
          });

          answerDimsList[i] = tempSum;
        }

        //根据各个维度获得结果
        var data = null;
        for(var i = 0; i < resultDescData.length; i++){
          var tmpDesc = resultDescData[i];
          if(tmpDesc.check(answerDimsList)){
            data = tmpDesc.getResult(answerDimsList);
            break;
          }
        }


        if(data === null){
          data = resultDescData[1].getResult([1,1,1,1,1]);
        }
      }

      return {
        type: nextItem.type,
        data:data,
        pageIndex: questionIndex
      }

    },
    selectItem: function(qid, selectSerial){
      //console.log(qid);
      //console.log(selectSerial);
      userSelectedSerial[qid] = selectSerial;
    },
    getUserSelectResult: function(){
      return userSelectedSerial;
    }
  }

  var _questions = [
    {
      'id': 'q1',
      'caption': '如果要把所有需要感谢的人或事物列一张单子，你觉得你的单子会有多长？',
      'img_src': [baseImageUrl + '3_1.jpg', baseImageUrl + '3_2.jpg',baseImageUrl + '3_3.jpg',baseImageUrl + '3_4.jpg',baseImageUrl + '3_5.jpg'],
      'imgWidth': 650,'imgHeight': 310,
     'answers': [
        {'id':'a11', 'caption': '很短', 'next':{'type':'q','id':'q2'}},
        {'id':'a12', 'caption': '', 'next':{'type':'q','id':'q2'}},
        {'id':'a13', 'caption': '', 'next':{'type':'q','id':'q2'}},
        {'id':'a14', 'caption': '', 'next':{'type':'q','id':'q2'}},
        {'id':'a15', 'caption': '很长', 'next':{'type':'q','id':'q2'}}
      ]
    },
    {
      'id': 'q2',
      'caption': '一般需要过多久你才会意识到你应该感谢别人？',
      'img_src': [baseImageUrl + '2_1.jpg', baseImageUrl + '2_2.jpg',baseImageUrl + '2_3.jpg',baseImageUrl + '2_4.jpg',baseImageUrl + '2_5.jpg'],
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a21', 'caption': '很快就能', 'next':{'type':'q','id':'q3'}},
        {'id':'a22', 'caption': '', 'next':{'type':'q','id':'q3'}},
        {'id':'a23', 'caption': '', 'next':{'type':'q','id':'q3'}},
        {'id':'a24', 'caption': '', 'next':{'type':'q','id':'q3'}},
        {'id':'a25', 'caption': '很久才能', 'next':{'type':'q','id':'q3'}}
      ]
    },
    {
      'id': 'q3',
      'caption': '生活中你想对多少人说谢谢？',
      'img_src': [baseImageUrl + '1_1.jpg', baseImageUrl + '1_2.jpg',baseImageUrl + '1_3.jpg',baseImageUrl + '1_4.jpg',baseImageUrl + '1_5.jpg'],
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a31', 'caption': '一两个人', 'next':{'type':'q','id':'q4'}},
        {'id':'a32', 'caption': '', 'next':{'type':'q','id':'q4'}},
        {'id':'a33', 'caption': '', 'next':{'type':'q','id':'q4'}},
        {'id':'a34', 'caption': '', 'next':{'type':'q','id':'q4'}},
        {'id':'a35', 'caption': '很多人', 'next':{'type':'q','id':'q4'}}
      ]
    },
    {
      'id': 'q4',
      'caption': '你觉得让你说出感谢的话有多困难？',
      'img_src': [baseImageUrl + '4_1.jpg', baseImageUrl + '4_2.jpg',baseImageUrl + '4_3.jpg',baseImageUrl + '4_4.jpg',baseImageUrl + '4_5.jpg'],
      'imgWidth': 650,'imgHeight': 310,
      'answers': [
        {'id':'a41', 'caption': '一点都不困难', 'next':{'type':'r','id':'c'}},
        {'id':'a42', 'caption': '', 'next':{'type':'r','id':'c'}},
        {'id':'a43', 'caption': '', 'next':{'type':'r','id':'c'}},
        {'id':'a44', 'caption': '', 'next':{'type':'r','id':'c'}},
        {'id':'a45', 'caption': '非常困难', 'next':{'type':'r','id':'c'}}
      ]
    }
  ];
  var _answerDims = {
    'a11': [{'name':1,'value':0}],
    'a12': [{'name':1,'value':1}],
    'a13': [{'name':1,'value':2}],
    'a14': [{'name':1,'value':3}],
    'a15': [{'name':1,'value':4}],

    'a21': [{'name':1,'value':4}],
    'a22': [{'name':1,'value':3}],
    'a23': [{'name':1,'value':2}],
    'a24': [{'name':1,'value':1}],
    'a25': [{'name':1,'value':0}],

    'a31': [{'name':1,'value':0}],
    'a32': [{'name':1,'value':1}],
    'a33': [{'name':1,'value':2}],
    'a34': [{'name':1,'value':3}],
    'a35': [{'name':1,'value':4}],

    'a41': [{'name':1,'value':4}],
    'a42': [{'name':1,'value':3}],
    'a43': [{'name':1,'value':2}],
    'a44': [{'name':1,'value':1}],
    'a45': [{'name':1,'value':0}]
};

  var resultDescData =
    [
      {
        check:function(dimList){
          var sum =  _.reduce(dimList, function(memo, num){ return memo + num; }, 0);
          if(sum >= 0 && sum <= 5){
            return true;
          }
          return false;
        },
        getResult: function(dimList){
          return {
            id : 'r1',
            title:'有一些羞于感恩',
            rate:0,
            desc:'' +
            '<h4>' +
            '您的孩子觉得感恩有点困难呢。可能是他（她）觉得生活中需要感恩的人或者事物比较有限，也可能只是他（她）羞于开口表达自己的感谢。不要担心，鼓励孩子用积极的眼光去看待身边事物，发现其中的价值和美吧，他（她）一定会学会感恩的，收获幸福的！' +
            '</h4>',
            url: baseImageUrl + 'r1.jpg'
          }
        }
      },
      {
        check:function(dimList){
          var sum =  _.reduce(dimList, function(memo, num){ return memo + num; }, 0);
          if(sum >= 6 && sum <= 11){
            return true;
          }
          return false;
        },
        getResult: function(dimList){
          var dim_pie_name = dimList.join('_') + '_';
          return {
            id : 'r2',
            title:'有一颗感恩之心',
            rate:0,
            desc:'' +
            '<h4>' +
            '您的孩子明白感恩的道理，也知道身边总是有一些人和事物值得去感谢，但他们可能羞于表达，也可能需要一定的时间去发现这些值得感恩的方面。多鼓励他（她）吧，让孩子敢于表达，乐于发现，拥有一个感恩之心！' +
            '</h4>',
            url: baseImageUrl + 'r1.jpg'
          }
        }
      },
      {
        check:function(dimList){
          var sum =  _.reduce(dimList, function(memo, num){ return memo + num; }, 0);
          if(sum >= 12 && sum <= 16){
            return true;
          }
          return false;
        },
        getResult: function(dimList){
          return {
            id : 'r3',
            title:'有一颗感恩之心',
            rate:0,
            desc:'' +
            '<h4>' +
            '您的孩子有一颗感恩之心哦！孩子认为身边的很多事物都值得感恩，他（她）也非常乐于说出感谢的话语，您一定觉得很幸福吧！感恩是一种很珍贵的品质哦，要鼓励孩子保持下去。' +
            '</h4>',
            url: baseImageUrl + 'r1.jpg'
          }
        }
      }

    ];

  var currentQuestion = _questions[0];
  var _answers = _.indexBy(
      _.reduceRight(
        _.map(_questions, function(q){return q.answers}),
        function(a, b) { return a.concat(b); }, []),
      function(one){return one.id;}
  );
  var questions_map = _.indexBy(_questions, function(one){return one.id;});
window.yoparentData = {
  'id':23,
  'qType':'single-choice',
  'cate_id': '1',
  'title': '儿童感恩特质测试',
  'imgSrc': baseImageUrl + 'face.jpg?t=' + Math.random(),
  'imgWidth': 750,'imgHeight': 500,
  'description': '感恩也是哈佛大学推荐的20种获得幸福的方法之一哦~会感恩的孩子能给孩子自己和整个家庭带来更多的幸福！你的孩子会感恩吗？试试下面这个测试吧！（适用年龄范围：5-16岁）'+
  '<br /><br />' +
  '<p style="font-size: 12px;line-height: 14px;">本量表改编自McCullough（2020）等人的感恩单因素问卷（GQ6）McCullough, M. E., Emmons, R. A., & Tsang, J. A. (2001). The gratitude questionnaire-six item form (GQ-6). Retrieved April, 16, 2010.</p>',
  'isCheckResult':false,
  'showCheckResult':false,
  'share': {
    'title': '儿童感恩特质测试',
    'description':''
  },
  'questions': _questions,
  'tpl': 'default'
};
})();
